/*
 * Copyright (C) 2016 yixun All Rights Reserved.
 * 
 * MortgageRecordDto.java
 */
package com.emm.yixun.common.model.dto;

import java.math.BigDecimal;
import java.util.Date;
import java.util.LinkedList;
import java.util.List;

import com.emm.yixun.common.model.MortgageRecord;

/**
 * [文件名称]<br>
 * MortgageRecordDto.java<br>
 * <br>
 * [文件描述]<br>
 * 按揭记录表 数据辅助类<br>
 * <br>
 * [修改记录]<br>
 * 2016-07-06 11:54:01 创建 陶俊代码生成器<br>
 * 
 * @author 陶俊代码生成器
 * @version 1.00
 */
public class MortgageRecordDto extends MortgageRecord {
	private static final long serialVersionUID = 1L;
	/**
	 *需要正序字段名
	 */
	private List<String> asc;
	/**
	 *需要逆序字段名
	 */
	private List<String> desc;
	/**
	 *排序SQL
	 */
	private String orders;
	
	/**
	 * 按揭已放款金额
	 */
	private BigDecimal fAmount;
	
	private List<String> mortgageReceivedStatusList=null;
	
	private List<String> mortgageCheckStatusList=null;
    
    public BigDecimal getfAmount() {
		return fAmount;
	}

	public void setfAmount(BigDecimal fAmount) {
		this.fAmount = fAmount;
	}

	/**
	 *  添加需要正序字段名
	 */
	public void addAsc(String col){
		if(asc==null){
			asc = new LinkedList<String>();
		}
		asc.add(col);
	}
	
	/**
	 *  清空需要正序字段名
	 */
	public void cleanAsc(){
		asc = null;
	}
	
	/**
	 *  添加需要逆序字段名
	 */
	public void addDesc(String col){
		if(desc==null){
			desc = new LinkedList<String>();
		}
		desc.add(col);
	}
	
	/**
	 *  清空需要逆序字段名
	 */
	public void cleanDesc(){
		desc = null;
	}
	
	/**
	 *  如果排序SQL为空根据需要正逆序的字段名拼接排序SQL
	 */
	public String  getOrders() {
		StringBuilder orderStr = null;
		StringBuilder ascStr;
		StringBuilder descStr;
		if(orders==null){
			if(asc!=null){
				ascStr = new StringBuilder();
				orderStr = new StringBuilder();
				String pex = "";
				for(String a : asc){
					ascStr.append(pex+a);
					pex = ",";
				}
				orderStr.append(ascStr.toString()+" ASC");
			}
			if(desc!=null){
				descStr = new StringBuilder();
				String pex = "";
				for(String d : desc){
					descStr.append(pex+d);
					pex = ",";
				}
				if(orderStr==null){
					orderStr = new StringBuilder();
					orderStr.append(descStr.toString()+" DESC");
				}else{
					orderStr.append(","+descStr.toString()+" DESC");
				}
			}
			orders = orderStr!=null?orderStr.toString():null;
		}
		
		return orders;
	}
	
	/**
	 *  设置排序SQL
	 */
	public void setOrders(String orders) {
		this.orders = orders;
	}
	private Date updateTimeBefore;
	private Date updateTimeAfter;
	private Date signedDateBefore;
	private Date signedDateAfter;
	private Date createTimeBefore;
	private Date createTimeAfter;
	private Date expectLoadDateBefore;
	private Date expectLoadDateAfter;
	private Date completeDateBefore;
	private Date completeDateAfter;

    public Date getUpdateTimeBefore() {
        return this.updateTimeBefore;
    }
    public void setUpdateTimeBefore(Date updateTimeBefore) {
        this.updateTimeBefore = updateTimeBefore;
    }

    public Date getUpdateTimeAfter() {
        return this.updateTimeAfter;
    }
    public void setUpdateTimeAfter(Date updateTimeAfter) {
        this.updateTimeAfter = updateTimeAfter;
    }
    public Date getSignedDateBefore() {
        return this.signedDateBefore;
    }
    public void setSignedDateBefore(Date signedDateBefore) {
        this.signedDateBefore = signedDateBefore;
    }

    public Date getSignedDateAfter() {
        return this.signedDateAfter;
    }
    public void setSignedDateAfter(Date signedDateAfter) {
        this.signedDateAfter = signedDateAfter;
    }
    public Date getCreateTimeBefore() {
        return this.createTimeBefore;
    }
    public void setCreateTimeBefore(Date createTimeBefore) {
        this.createTimeBefore = createTimeBefore;
    }

    public Date getCreateTimeAfter() {
        return this.createTimeAfter;
    }
    public void setCreateTimeAfter(Date createTimeAfter) {
        this.createTimeAfter = createTimeAfter;
    }
    public Date getExpectLoadDateBefore() {
        return this.expectLoadDateBefore;
    }
    public void setExpectLoadDateBefore(Date expectLoadDateBefore) {
        this.expectLoadDateBefore = expectLoadDateBefore;
    }

    public Date getExpectLoadDateAfter() {
        return this.expectLoadDateAfter;
    }
    public void setExpectLoadDateAfter(Date expectLoadDateAfter) {
        this.expectLoadDateAfter = expectLoadDateAfter;
    }
    public Date getCompleteDateBefore() {
        return this.completeDateBefore;
    }
    public void setCompleteDateBefore(Date completeDateBefore) {
        this.completeDateBefore = completeDateBefore;
    }

    public Date getCompleteDateAfter() {
        return this.completeDateAfter;
    }
    public void setCompleteDateAfter(Date completeDateAfter) {
        this.completeDateAfter = completeDateAfter;
    }
    
    /***********扩展字段***********/
    //合同类型
    private String contactType;
    //签约号
    private String signCode;
    //付款方式,签约表中获取
    private String paymentMethod;
    //款项名称: 根据付款方式决定，如一次性付款、公积金、首付款、按揭银行、1期、2期等
    private String receivablesFunds;
    //业务状态:[{key:business_status,values:[{no:1,alias:SIGNED,remark:签约},{no:2,alias:CHECKWARDS,remark:已退房},{no:3,alias:HAVEWARDS,remark:已换房},{no:4,alias:RENAMED,remark:已更名}]}]
    private String businessStatus;
    //按揭总收款,已收款中获取.通过待收款的needId匹配
    private String hrrReceived;
    //按揭最新一笔放贷日期: 根据收款表中的最新收款记录获取
    private Date statementDate;
    //结算日期,用来查询
    private Date statementDateBefore;
    private Date statementDateAfter;
    //结算日期,Extjs查询条件
    private String ext_statementDateBefore;
	private String ext_statementDateAfter;
    //组团
    private Long premisesId;
    //楼栋
    private Long buildingId;
    //单元
    private Long unitId;
    //树节点Id
    private String treeId;
    //签约日期
    private String ext_signedDateBefore;
	private String ext_signedDateAfter;
	//操作人
	private String operationUser;
	
	//资料齐全日期
    private String ext_completeDate;
    private String ext_expectLoadDate;
    
    private Long userId;
    private String userCode;
    private String bankName;
    //当天记录已收金额
    private String currReceivedAmount;
    
    //按揭附件
  	private String fileArr;
  	private String[] fileList;
  	
  	private String isOverdueLenders;//是否逾期未放款
  	private String overdueDayNum;//逾期天数
  	private String selOverdueLenders;//下拉选项是否逾期未放款：0 全部，1 是， 2 否
  	
    public String getFileArr() {
		return fileArr;
	}

	public void setFileArr(String fileArr) {
		this.fileArr = fileArr;
	}

	public String[] getFileList() {
		return fileList;
	}

	public void setFileList(String[] fileList) {
		this.fileList = fileList;
	}

	public String getPaymentMethod() {
		return paymentMethod;
	}

	public void setPaymentMethod(String paymentMethod) {
		this.paymentMethod = paymentMethod;
	}

	public String getHrrReceived() {
		return hrrReceived;
	}

	public void setHrrReceived(String hrrReceived) {
		this.hrrReceived = hrrReceived;
	}

	public Date getStatementDate() {
		return statementDate;
	}

	public void setStatementDate(Date statementDate) {
		this.statementDate = statementDate;
	}

	public Long getPremisesId() {
		return premisesId;
	}

	public void setPremisesId(Long premisesId) {
		this.premisesId = premisesId;
	}

	public Long getBuildingId() {
		return buildingId;
	}

	public void setBuildingId(Long buildingId) {
		this.buildingId = buildingId;
	}

	public Long getUnitId() {
		return unitId;
	}

	public void setUnitId(Long unitId) {
		this.unitId = unitId;
	}

	public String getBusinessStatus() {
		return businessStatus;
	}

	public void setBusinessStatus(String businessStatus) {
		this.businessStatus = businessStatus;
	}

	public String getTreeId() {
		return treeId;
	}

	public void setTreeId(String treeId) {
		this.treeId = treeId;
	}

	public String getSignCode() {
		return signCode;
	}

	public void setSignCode(String signCode) {
		this.signCode = signCode;
	}

	public String getExt_signedDateBefore() {
		return ext_signedDateBefore;
	}

	public void setExt_signedDateBefore(String ext_signedDateBefore) {
		this.ext_signedDateBefore = ext_signedDateBefore;
	}

	public String getExt_signedDateAfter() {
		return ext_signedDateAfter;
	}

	public void setExt_signedDateAfter(String ext_signedDateAfter) {
		this.ext_signedDateAfter = ext_signedDateAfter;
	}

	public Date getStatementDateBefore() {
		return statementDateBefore;
	}

	public void setStatementDateBefore(Date statementDateBefore) {
		this.statementDateBefore = statementDateBefore;
	}

	public Date getStatementDateAfter() {
		return statementDateAfter;
	}

	public void setStatementDateAfter(Date statementDateAfter) {
		this.statementDateAfter = statementDateAfter;
	}

	public String getExt_statementDateBefore() {
		return ext_statementDateBefore;
	}

	public void setExt_statementDateBefore(String ext_statementDateBefore) {
		this.ext_statementDateBefore = ext_statementDateBefore;
	}

	public String getExt_statementDateAfter() {
		return ext_statementDateAfter;
	}

	public void setExt_statementDateAfter(String ext_statementDateAfter) {
		this.ext_statementDateAfter = ext_statementDateAfter;
	}

	public String getReceivablesFunds() {
		return receivablesFunds;
	}

	public void setReceivablesFunds(String receivablesFunds) {
		this.receivablesFunds = receivablesFunds;
	}

	public String getOperationUser() {
		return operationUser;
	}

	public void setOperationUser(String operationUser) {
		this.operationUser = operationUser;
	}
	
	public String getExt_completeDate() {
		return ext_completeDate;
	}

	public void setExt_completeDate(String ext_completeDate) {
		this.ext_completeDate = ext_completeDate;
	}

	public String getExt_expectLoadDate() {
		return ext_expectLoadDate;
	}

	public void setExt_expectLoadDate(String ext_expectLoadDate) {
		this.ext_expectLoadDate = ext_expectLoadDate;
	}

	public Long getUserId() {
		return userId;
	}

	public void setUserId(Long userId) {
		this.userId = userId;
	}

	public String getUserCode() {
		return userCode;
	}

	public void setUserCode(String userCode) {
		this.userCode = userCode;
	}

	public String getContactType() {
		return contactType;
	}

	public void setContactType(String contactType) {
		this.contactType = contactType;
	}

	public String getBankName() {
		return bankName;
	}

	public void setBankName(String bankName) {
		this.bankName = bankName;
	}

	public String getCurrReceivedAmount() {
		return currReceivedAmount;
	}

	public void setCurrReceivedAmount(String currReceivedAmount) {
		this.currReceivedAmount = currReceivedAmount;
	}

	public List<String> getMortgageReceivedStatusList() {
		return mortgageReceivedStatusList;
	}

	public void setMortgageReceivedStatusList(
			List<String> mortgageReceivedStatusList) {
		this.mortgageReceivedStatusList = mortgageReceivedStatusList;
	}

	public List<String> getMortgageCheckStatusList() {
		return mortgageCheckStatusList;
	}

	public void setMortgageCheckStatusList(List<String> mortgageCheckStatusList) {
		this.mortgageCheckStatusList = mortgageCheckStatusList;
	}

	public String getIsOverdueLenders() {
		return isOverdueLenders;
	}

	public void setIsOverdueLenders(String isOverdueLenders) {
		this.isOverdueLenders = isOverdueLenders;
	}

	public String getOverdueDayNum() {
		return overdueDayNum;
	}

	public void setOverdueDayNum(String overdueDayNum) {
		this.overdueDayNum = overdueDayNum;
	}

	public String getSelOverdueLenders() {
		return selOverdueLenders;
	}

	public void setSelOverdueLenders(String selOverdueLenders) {
		this.selOverdueLenders = selOverdueLenders;
	}

}
